Testing some geometry routines in C++
[andmenj-acm.git] / 579 - Clockhands / p579.dpr
blobb03a878dcca1de78d51734cd652639db9ef151a1
1 program p579;\r
2 \r
3 {$APPTYPE CONSOLE}\r
4 \r
5 uses\r
6   SysUtils, Math;\r
7 \r
8 procedure leer(var hora : integer; var minuto : integer);\r
9 var\r
10   entrada : string;\r
11 begin\r
12   readLn(entrada);\r
13   hora := strToInt(copy(entrada, 1, pos(':', entrada) - 1));\r
14   delete(entrada, 1, pos(':', entrada));\r
15   minuto := strToInt(entrada);\r
16 end;\r
18 var\r
19   h, m : integer; //hora y minuto\r
20   ah, am : double; //angulos que hay entre las 12 en punto y la hora y el minuto\r
21   temp : double;\r
23 begin\r
24   reset(input, 'input.txt');\r
25   reset(output, 'output.txt');\r
26   leer(h, m);\r
27   while (h + m > 0) do\r
28     begin\r
29     if h = 12 then\r
30       h := 0;\r
31     ah := h * 30 + m * 0.5;\r
32     am := m * 6;\r
33     temp := abs(ah - am);\r
34     if temp > 180 then\r
35       temp := 360 - temp;\r
36     temp := floor(1000 * temp + 0.5) / 1000; //redondea a 3 cifras\r
37     writeLn(format('%d.%.3d', [floor(temp), floor((temp - floor(temp)) * 1000)]));\r
38     leer(h, m);\r
39     end;\r
40 end.\r